package com.asuka.service;

import com.asuka.dto.OrderPageDTO;
import com.asuka.dto.OrderPayDTO;
import com.asuka.dto.OrderSearchDTO;
import com.asuka.dto.OrdersSubmitDTO;
import com.asuka.entity.Orders;
import com.asuka.result.PageResult;
import com.asuka.vo.OrderSubmitVO;
import com.asuka.vo.OrderVO;
import com.asuka.vo.OrderStatisticsVO;

public interface OrderService {
    OrderSubmitVO OrderController(OrdersSubmitDTO orders);

    Orders pay(OrderPayDTO orderPayDTO);

    PageResult selectPageList(OrderPageDTO page);

    OrderVO details(Long id);

    void cancel(Long id);

    void repetition(Long id);

    PageResult search(OrderSearchDTO orderSearchDTO);

    OrderStatisticsVO statistics();

    void confirm(Orders order);

    void rejection(Orders order);

    void adminCancel(Orders order);

    void delivery(Long id);

    void complete(Long id);

    void reminder(Long id);
}
